package com.xiaoxu.swaggerphone.domain.co;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

@Data
@Schema(title = "新增用户模型")
public class UserAddCO {
    @Schema(title = "名字", example = "老王", minLength = 1, maxLength = 5)
    @NotBlank(message = "名字不能为空")
    private String name;

    @Schema(title = "年龄", example = "18", minimum = "0", maximum = "150") //此处不做检验
    @NotNull(message = "年龄不能为空")
    @Range(min = 0, max = 150, message = "年龄在0~150之间")//检验位置
    private Integer age;
//    private int age;
//    既然不能为空，为什么不使用int？
//    1. 因为int是基本类型不会为空，所以@NotNull校验无效
//    2. 类初始化时生成默认值(int默认为0)，@Range中最小值包含0，所以没有age参数校验通过，不符合预期

    @Schema(title = "电话（可选）")
    private String phone;
}
